package tenth.泛型应用;

class Point<T> { // 此处可以是任意的标识符号，T是Type的简称
    private T var;

    public T getVar() {
        return var;
    }

    public void setVar(T var) {
        this.var = var;
    }
}

// 使用Point类将var类型设置成整数
public class 声明泛型 {
    public static void main(String[] args) {
        Point<Integer> p = new Point<>();
        // 类型改成Integer之后 setter类getter类也跟着变了
        // public void setVar(Integer var){}
        // public Integer getVar(){}
        p.setVar(30);
        System.out.println(p.getVar() * 2);

        Point<String> p2 = new Point<>();
        p2.setVar("张三");
        System.out.println(p2.getVar());
    }
}
/**
 * 关于整型的设置问题：
 * 为什么上面设置泛型时不直接将var类型设置成int类型，而使用Point<int>的形式呢？
 * 答：只能使用包装类
 * 在泛型指定中是无法使用基本数据类型的，必须设置成一个类，这样在设置数字的时候就必须使用包装类，
 * 而在JDK1.5之后提供了自动装箱的操作，操作时也不会太复杂
 */